package inge_soft.gestoriusNuevo.business.logic;

import inge_soft.gestoriusNuevo.persistence.entity.implementation.Localidad;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

/**
 * Clase de control
 * sirve para filtrar una lista de localidades por nombre (como prefijo)
 * @author ariel
 *
 */
public class BuscadorMemoria {

	private List<Localidad> listaConsultada;
	
	public BuscadorMemoria(List<Localidad> listaConsultada) {
		this.listaConsultada = listaConsultada;
	}
	
	/**
	 * Busca en la lista consultada las localidades cuyo nombre coincida (como prefijo) con la palabra
	 * @param palabra a buscar como prefijo en el nombre de las localidades
	 * @return lista de localidades encontradas
	 */
	public List<Localidad> buscarParecidas(String palabra) {
		String palabraMayusculas = palabra.toUpperCase();
		List<Localidad> listaResultado = new ArrayList<Localidad>();
		Iterator<Localidad> iteradorListaConsultada = listaConsultada.iterator();
		Localidad localidad;
		String nombreMayusculas;
		
		while (iteradorListaConsultada.hasNext()) {
			localidad = iteradorListaConsultada.next();
			nombreMayusculas = localidad.getNombre().toUpperCase();
			if (nombreMayusculas.startsWith(palabraMayusculas)) {
				listaResultado.add(localidad);
			}
		}
		return listaResultado;
	}
}
